package cn.cvs.dao;

import cn.cvs.pojo.StorageRecord;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

@Mapper
public interface StorageRecordMapper {
    //根据商品名称<模糊查询>   供应商id   是否付款   查询    使用三种模式查询
    //对象
    List<StorageRecord> queryStorageRecord(StorageRecord storageRecord);

    //map
    List<StorageRecord> queryStorageRecordMap(Map<String, Object> map);

    //注解
    List<StorageRecord> queryStorageRecordParam(@Param("goodsName") String goodsName, @Param("supplierId") Integer supplierId, @Param("payStatus") Integer payStatus);

    //增加一个扩展属性   供应商名称
    List<StorageRecord> queryStorageRecordWrite(Map<String, Object> map);

    //对象嵌套
    List<StorageRecord> queryStorageRecordWriteSubName(Map<String, Object> map);

    //if标签改造入库单模块的列表查询功能<根据供货商id,付款情况,商品名称模糊查询,查找>
    List<StorageRecord> queryBySupIdandPayStatusandGoodsName(@Param("supplierId") Integer supplierId, @Param("payStatusand") Integer payStatusand, @Param("goodsName") String goodsName);

    //使用MyBatis的foreach标签改造入库单模块的列表查询功能   <查询多个供货商关联的入库单列表数据
    List<StorageRecord> queryForeachArray(@Param("supplierId") Integer[] supplierId);

    List<StorageRecord> queryForeachMap(@Param("supplierId") Map<String, Object> supplierId);

    //使用MyBatis的foreach标签改造入库单模块的列表查询功能   <查询多个供货商关联的入库单列表数据
    //满足入库编码模糊匹配   参数为map对象
    List<StorageRecord> queryForeachMapAndsrcCode(@Param("supplierId") Map<String, Object> supplierId, @Param("srcCode") String srcCode);

    //实现入库单模块和供货商模块的分页查询功能
    List<StorageRecord> querySupplierPage(@Param("pageBean") Integer pageBean, @Param("pageSize") Integer pageSize);
}
